﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    /// <summary>
    /// 销售退货明细实体类
    /// 用于存储销售退货业务中的商品明细信息，关联销售退货主单及商品相关数据
    /// </summary>
    public class OmSalesReturnDetail
    {
        /// <summary>
        /// 销售退货明细ID（主键）
        /// 唯一标识一条销售退货明细记录
        /// </summary>
        [Key]
        public long SalesReturnDetailId { get; set; }

        /// <summary>
        /// 销售退货单ID
        /// 关联销售退货主表（OmSalesReturn）的主键，标识当前明细所属的退货单
        /// </summary>
        public long SalesReturnId { get; set; }

        /// <summary>
        /// 商品编码
        /// 退货商品的唯一编码，用于标识具体商品
        /// </summary>
        public string GoodsCode { get; set; }

        /// <summary>
        /// 商品类型ID
        /// 退货商品所属类型的ID，关联商品类型表，用于分类统计
        /// </summary>
        public long GoodsTypeId { get; set; }

        /// <summary>
        /// 退货金额
        /// 当前明细商品的退货总金额（通常为退货数量×单价）
        /// </summary>
        public decimal ReturnAmount { get; set; }

        /// <summary>
        /// 订单数量
        /// 原销售订单中该商品的订购数量
        /// </summary>
        public decimal OrderQuantity { get; set; }

        /// <summary>
        /// 出库数量
        /// 原销售业务中该商品实际出库的数量
        /// </summary>
        public decimal OutBboundQty { get; set; }

        /// <summary>
        /// 未发货数量
        /// 原销售订单中该商品未完成发货的数量
        /// </summary>
        public decimal UnshippedQty { get; set; }

        /// <summary>
        /// 是否删除
        /// 逻辑删除标识（例如：'Y'表示已删除，'N'表示未删除）
        /// </summary>
        public string IsDelete { get; set; }

        /// <summary>
        /// 附件ID
        /// 关联附件表的主键，存储当前退货明细相关的附件（如质检报告、图片等）ID
        /// </summary>
        public long AttachmentId { get; set; }

        /// <summary>
        /// 备注信息
        /// 存储当前退货明细的补充说明（如退货原因细节、特殊处理说明等）
        /// </summary>
        public string Remarks { get; set; }
    }
}
